package com.heatup.apt.common.util.Netty;

//import org.eclipse.jetty.npn.NextProtoNego;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * SPDY 使用 TLS 的扩展称为 Next Protocol Negotiation (NPN)。在Java 中,我们有两种不同的方式选择的基于 NPN 的协议:
 * 使用 ssl_npn,NPN 的开源 SSL 提供者。
 * 使用通过 Jetty 的 NPN 扩展库。
 *
 *
 * Jetty NPN 库是一个外部的库,而不是 Netty 的本身的一部分。它用于处理 Next Protocol Negotiation, 这是用于检测客户端是否支持 SPDY。
 * 集成 Next Protocol Negotiation
 *
 * 1. 定义所有的 ServerProvider 实现的协议
 * 2. 设置如果 SPDY 协议失败了就转到 http/1.1
 * 3. 返回支持的协议的列表
 * 4. 设置选择的协议
 * 5. 返回选择的协议
 *
 *
 * Created by blank on 2017/11/20 下午5:20
 */
//public class DefaultServerProvider implements NextProtoNego.ServerProvider {
//
//    private static final List<String> PROTOCOLS = Collections.unmodifiableList(Arrays.asList("spdy/2","spdy/3","http/1.1")); //1
//
//    private String protocol;
//
//
//    @Override
//    public void unsupported() {
//        protocol = "http/1.1"; //2
//    }
//
//    @Override
//    public List<String> protocols() {
//        return PROTOCOLS; //3
//    }
//
//    @Override
//    public void protocolSelected(String s) {
//        this.protocol = protocol; //4
//    }
//
//    public String getProtocol() {
//        return protocol; //5
//    }
//}
